// ProjectName: go-learn-demo
// PackageName: _9_routine
// Description: 目标是主线程中，每100毫秒打印1次，
// Author: hy.bai
// Date: 2025-07-30 15:18

package main

import (
	"fmt"
	"runtime"
	"time"
)

// 通过协程调用test函数
func test() {
	fmt.Printf("test函数开始执行,协程id是:%d\n", runtime.NumGoroutine()) // 当前协程id是2
	for i := 0; i < 10; i++ {
		fmt.Printf("第%d次打印 - test函数----Hello Go~~~\n", i+1)
		time.Sleep(80 * time.Microsecond) // 休眠80毫秒
	}
}

/*
  注意：main函数所在的协程id是1。
*/

// main线程打印两次
func main() {
	fmt.Printf("main函数开始执行,协程id是:%d\n", runtime.NumGoroutine()) // 当前协程id是1
	go test()                                                   // 开启一个协程调用执行test函数
	for i := 0; i < 2; i++ {
		fmt.Printf("第%d次打印 - main函数----Hello Go~~~\n", i+1)
		time.Sleep(100 * time.Microsecond) // 休眠100毫秒
	}
	version := runtime.Version()
	fmt.Println("当前运行版本是:", version) // 当前运行版本是: go1.24.6
}
